home *** CD-ROM | disk | FTP | other *** search
/ Enter 2002 August / EnterCD 8_2002.iso / Internet / Adobe GoLive 6.0 / data1.cab / PF_AppDir_Mod_ExtendScripts_WMLExt / draw.js < prev    next >
Encoding:
JavaScript  |  2002-03-28  |  9.5 KB  |  347 lines

  1. //------------------------------------------------------------------------------
  2. //
  3. // ADOBE SYSTEMS INCORPORATED
  4. // Copyright 2000-2002 Adobe Systems Incorporated 
  5. // All Rights Reserved
  6. //
  7. // NOTICE: Adobe permits you to use, modify, and distribute 
  8. // this file in accordance with the terms of the Adobe license 
  9. // agreement accompanying it. If you have received this file 
  10. // from a source other than Adobe, then your use, modification, 
  11. // or distribution of it requires the prior written permission 
  12. // of Adobe.
  13. //
  14. //------------------------------------------------------------------------------
  15.  
  16.  
  17. //----------------------------------------------------
  18. // colorize
  19. //
  20. // Description:
  21. //   add color to a custom box.
  22.  
  23. function colorize(box, draw, color)
  24. {
  25.     var width = box.width;    //  width of box
  26.     draw.setColor(color);
  27.     draw.fillRect (0, 0, width, box.topMargin);
  28.     var y = box.height - box.bottomMargin        // move up from the bottom edge
  29.     draw.fillRect (0, y , width, box.bottomMargin);
  30.     draw.fillRect (0, 0 , box.leftMargin, y);
  31.     draw.fillRect (width - box.rightMargin, 0 , box.rightMargin, box.height);
  32. }    
  33.  
  34. //----------------------------------------------------
  35. // draw functions:
  36. //
  37. // Description:
  38. //   Called by drawBox().
  39. //   Draw the custom box.
  40. //   Draw red border if element in incorrect
  41. //   position.
  42.  
  43. function drawA(box, draw)
  44. {
  45.     if (!document) {
  46.         // there should always be a document
  47.         // since the custom box is drawn in a document
  48.         return;
  49.     }
  50.     var version = getWMLVersion(document);
  51.     
  52.     colorize(box, draw, "#FAF0E6");
  53.     var borderColor = (checkPositionForAnchorAndA(box.element, version) < 0) ? "red" : "black";
  54.     drawBorder(box, draw, borderColor);
  55.     drawContentModel(box, draw, "(TEXT | Img)*");
  56.     drawTitle(box, draw);
  57.     aIcon.draw(1,1);
  58. }
  59.  
  60. function drawAnchor(box, draw)
  61. {
  62.     if (!document) {
  63.         // there should always be a document
  64.         // since the custom box is drawn in a document
  65.         return;
  66.     }
  67.     var version = getWMLVersion(document);
  68.     
  69.     colorize(box, draw, "#FAF0E6");
  70.     var borderColor = (checkPositionForAnchorAndA(box.element, version) < 0) ? "red" : "black";
  71.     drawBorder(box,draw, borderColor);
  72.     drawTitle(box, draw);
  73.     drawContentModel(box, draw, "(TEXT | Img | Go | Prev | Refresh)*");
  74.     anchorIcon.draw(1,1);
  75. }
  76.  
  77. function drawBorder(box,draw,color)
  78. {
  79.     w = box.width;
  80.     h = box.height;                
  81.     draw.setColor(color);
  82.     draw.textFace(1);
  83.     draw.penSize(1);
  84.     draw.frameRect(1,1,w-2,h-2);                
  85. }
  86.             
  87. function drawCard(box,draw){             
  88.     if (!document) {
  89.         // need a document for getWMLVersion()
  90.         // and there should always be a document
  91.         // when drawing a custom box
  92.         return;
  93.     }   
  94.     colorize(box, draw, "#CCFFFF");
  95.     var borderColor = (checkPositionForCard(box.element) < 0) ? "red" : "black";
  96.     drawBorder(box, draw, borderColor);    
  97.     var version = getWMLVersion(document);
  98.     if (version == "1.1")            
  99.         drawContentModel(box, draw, "OnEvent*, Timer?, (Do | P)*");        
  100.     else    
  101.         drawContentModel(box, draw, "OnEvent*, Timer?, (Do | P | Pre)*");
  102.     drawTitle(box, draw);
  103.     cardIcon.draw(1,1)                    
  104. }    
  105.  
  106. // draw element name followed by content model
  107. // model contains content model string
  108. function drawContentModel(box, draw, model) 
  109. {
  110.     // get tag name
  111.     tagName = box.element.tagName;
  112.  
  113.     // draw tag name
  114.     w = box.width;
  115.     h = box.height;                
  116.     draw.textFace(0);
  117.     draw.penSize(1);
  118.     draw.textSize(11);
  119.     xPos = 14;
  120.     yPos = 1;
  121.     draw.moveTo(xPos, yPos);
  122.     draw.drawString(tagName);    
  123.  
  124.     // draw content model
  125.     xPos = xPos + draw.stringWidth(tagName + " ");
  126.     yPos += 3;
  127.     draw.setColor("BlueViolet");
  128.     draw.textFace(2);
  129.     draw.textSize(8);
  130.     draw.moveTo(xPos, yPos);
  131.     draw.drawString(model);
  132. }
  133.  
  134. function drawDeck(box,draw)
  135. {
  136.     if (box == null || draw == null)
  137.         return;
  138.     else
  139.         colorize(box, draw, "#FFFFCC");
  140.         drawBorder(box, draw, "black");    
  141.         drawContentModel(box, draw, "Template?, Card+");                            
  142.         deckIcon.draw(1,1);
  143. }    
  144.  
  145.  
  146. function drawDo(box,draw)
  147. {
  148.     if (!document) {
  149.         // there should always be a document
  150.         // since the custom box is drawn in a document
  151.         return;
  152.     }
  153.     var version = getWMLVersion(document);
  154.     
  155.     colorize(box, draw, "#FAF0E6");
  156.     var borderColor = (checkPositionForDo(box.element, version) < 0) ? "red" : "black";
  157.     drawBorder(box, draw, borderColor)
  158.     drawContentModel(box, draw, "Go | Prev | Noop | Refresh")
  159.     doIcon.draw(1,1)
  160. }
  161.  
  162. function drawFieldset(box, draw)
  163. {
  164.     colorize(box, draw, "#FAF0E6");
  165.     var borderColor = (checkPositionForFieldset(box.element) < 0) ? "red" : "black";
  166.     drawBorder(box, draw, borderColor);
  167.     drawTitle(box, draw);
  168.     drawContentModel(box, draw, "(TEXT | a | Anchor | Do | Fieldset | Img | Input | Select)*");
  169.     fieldsetIcon.draw(1,1);
  170. }
  171.  
  172. function drawGo(box,draw){
  173.     colorize(box, draw, "#FAF0E6");
  174.     var borderColor = (checkPositionForGoPrevAndRefresh(box.element) < 0) ? "red" : "black";
  175.     drawBorder(box, draw, borderColor)
  176.     drawContentModel(box, draw, "(Postfield | Setvar)*")
  177.     goIcon.draw(1,1)
  178. }
  179.  
  180. function drawImg(box, draw)
  181. {
  182.     var borderColor = (checkPositionForImg(box.element) < 0) ? "red" : "black";
  183.     drawBorder(box, draw, borderColor);
  184.     imageIcon.draw(1,1);
  185. }
  186.  
  187. function drawInput(box,draw)
  188. {
  189.     if (!document) {
  190.         // there should always be a document
  191.         // since the custom box is drawn in a document
  192.         return;
  193.     }
  194.     var version = getWMLVersion(document);
  195.     
  196.     var borderColor = (checkPositionForInputAndSelect(box.element, version) < 0) ? "red" : "black";
  197.     drawBorder(box, draw, borderColor)    
  198.     if (box.element.title) {
  199.         draw.moveTo(14,2);
  200.         draw.drawString(box.element.title)
  201.     }        
  202.     if (box.element.size) {    
  203.         var titleWidth = (box.element.title) ? draw.stringWidth(box.element.title) : 0;
  204.         draw.frameRect(titleWidth + 18, 3, box.element.size * 7, 13);
  205.     }
  206.     inputIcon.draw(1,1);
  207. }
  208.     
  209. function drawNoop(box,draw)
  210. {
  211.     var borderColor = (checkPositionForNoop(box.element) < 0) ? "red" : "black";
  212.     drawBorder(box, draw, borderColor);
  213.     noopIcon.draw(1,1);
  214. }
  215.  
  216. function drawOnevent(box,draw)
  217. {
  218.     colorize(box, draw, "#FAF0E6");
  219.     var borderColor = (checkPositionForOnevent(box.element) < 0) ? "red" : "black";
  220.     drawBorder(box, draw, borderColor);
  221.     drawContentModel(box, draw, "Go | Prev | Noop | Refresh");
  222.     oneventIcon.draw(1,1);                
  223. }
  224.  
  225. function drawOption(box,draw)
  226. {
  227.     colorize(box, draw, "#FAF0E6");
  228.     var borderColor = (checkPositionForOption(box.element) < 0) ? "red" : "black";
  229.     drawBorder(box, draw, borderColor);
  230.     drawTitle(box, draw);
  231.     drawContentModel(box, draw, "(TEXT | OnEvent)*");
  232.     optionIcon.draw(1,1);
  233. }
  234.     
  235. function drawOptiongroup(box, draw)
  236. {
  237.     colorize(box, draw, "#FAF0E6");
  238.     var borderColor = (checkPositionForOptgroup(box.element) < 0) ? "red" : "black";
  239.     drawBorder(box, draw, borderColor);
  240.     drawTitle(box, draw);
  241.     drawContentModel(box, draw, "(Option Group | Option)+");
  242.     optgroupIcon.draw(1,1);
  243. }
  244.  
  245. function drawPostfield(box,draw)
  246. {
  247.     var borderColor = (checkPositionForPostfield(box.element) < 0) ? "red" : "black";
  248.     drawBorder(box, draw, borderColor);
  249.     postfieldIcon.draw(1,1);
  250. }
  251.  
  252. function drawPre(box,draw)
  253. {
  254.     if (!document) {
  255.         // there should always be a document
  256.         // since the custom box is drawn in a document
  257.         return;
  258.     }
  259.     var version = getWMLVersion(document);
  260.     
  261.     colorize(box, draw, "#FAF0E6");
  262.     var borderColor = (checkPositionForPre(box.element, version) < 0) ? "red" : "black";
  263.     drawBorder(box, draw, borderColor);
  264.     drawContentModel(box, draw, "(TEXT | A | Anchor | Do | Input | Select)*");
  265.     preIcon.draw(1,1);
  266. }
  267.  
  268.  
  269. function drawPrev(box,draw)
  270. {
  271.     colorize(box, draw, "#FAF0E6");
  272.     var borderColor = (checkPositionForGoPrevAndRefresh(box.element) < 0) ? "red" : "black";
  273.     drawBorder(box, draw, borderColor);
  274.     drawContentModel(box, draw, "(Setvar)*");
  275.     prevIcon.draw(1,1);
  276. }
  277.  
  278.             
  279. function drawRefresh(box,draw){
  280.     colorize(box, draw, "#FAF0E6");
  281.     var borderColor = (checkPositionForGoPrevAndRefresh(box.element) < 0) ? "red" : "black";
  282.     drawBorder(box, draw, borderColor);
  283.     drawContentModel(box, draw, "(Setvar)*");
  284.     refreshIcon.draw(1,1);
  285. }
  286.  
  287. function drawSelect(box,draw)
  288. {
  289.     if (!document) {
  290.         // there should always be a document
  291.         // since the custom box is drawn in a document
  292.         return;
  293.     }
  294.     var version = getWMLVersion(document);
  295.     
  296.     colorize(box, draw, "#FAF0E6");
  297.     var borderColor = (checkPositionForInputAndSelect(box.element, version) < 0) ? "red" : "black";
  298.     drawBorder(box, draw, borderColor);
  299.     drawTitle(box, draw);
  300.     drawContentModel(box, draw, "(Option Group | Option)+");
  301.     selectIcon.draw(1,1);
  302. }
  303.  
  304. function drawSetvar(box,draw)
  305. {
  306.     var borderColor = (checkPositionForSetvar(box.element) < 0) ? "red" : "black";
  307.     drawBorder(box, draw, borderColor)
  308.     setvarIcon.draw(1,1)
  309. }
  310.  
  311. function drawTemplate(box,draw)
  312. {
  313.     colorize(box, draw, "#CCFFCC");
  314.     var displayBlack = true;
  315.     var borderColor = (checkPositionForTemplate(box.element) < 0) ? "red" : "black";
  316.     drawBorder(box, draw, borderColor)    
  317.     drawContentModel(box, draw, "(Do | Onevent)*")                                    
  318.     templateIcon.draw(1,1)                
  319. }
  320.  
  321. function drawTimer(box, draw)
  322. {
  323.     var borderColor = (checkPositionForTimer(box.element) < 0) ? "red" : "black";
  324.     drawBorder(box, draw, borderColor);
  325.     timerIcon.draw(1,1);
  326. }
  327.  
  328.  
  329. // draw title centered horizontally in box
  330. function drawTitle(box, draw) 
  331. {
  332.     var x, y;
  333.     if (box.element.title) {
  334.         draw.setColor("black");
  335.         draw.textFace(1); // bold
  336.         draw.penSize(1);
  337.         if (box.element.tagName == "card")
  338.             draw.textSize(11);
  339.         else 
  340.             draw.textSize(9);
  341.         x = (box.width - draw.stringWidth(box.element.title)) / 2;
  342.         y = 20;
  343.         draw.moveTo(x, y);
  344.         if (box.element.title)
  345.         draw.drawString(box.element.title);
  346.     }
  347. }